package main

import (
	"fmt"
)

// 声明变量
var a string

// 声明多个变量
var (
	n1 int
	n2 bool
	n3 float64
)

// 声明变量的时候初始化
var s1 = "hello"      // 本身就会做类型推导
var s2, s3 = 32, 45.6 // 初始化多个

// 声明常量
const pi = 3.1415926

const (
	a1 = 100
	a2
	a3
)

const (
	_  = iota
	KB = 1 << (10 * iota)
	MB = 1 << (10 * iota)
	GB = 1 << (10 * iota)
)

const (
	r1, r2 = iota + 1, iota + 2
	r3, r4
)

func main() {
	var b string // 非全局变量 声明必须要进行使用

	n := 30 // 短声明变量 只能在函数的内部进行使用

	c, _ := 20, 20 // 匿名变量 其中_会自动忽略掉

	fmt.Println(b, n, c)
	fmt.Println(a1, a2, a3)
	fmt.Println(KB, MB, GB)
	fmt.Println(r1, r2, r3, r4)
}
